/**   
 * @Title: ScfAssetCoreInformation.java 
 * @Package com.betterjr.modules.loan.entity 
 * @Description: TODO(用一句话描述该文件做什么) 
 * @author xuzx
 * @date 2017年11月21日 下午3:14:41  
 */
package com.betterjr.modules.loan.entity;

import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;

import com.betterjr.common.entity.BetterjrEntity;

/** 
 * @ClassName: ScfAssetCoreInformation 
 * @Description: 核心企业资产信息 
 * @author xuzx
 * @date 2017年11月21日 下午3:14:41 
 *  
 */
public class ScfAssetCoreInformation implements BetterjrEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 授信区域属性 creditLimit:授信总额,creditUsed：已使用额度，creditBalance：剩余额度
     */
    private Map<String, Object> scfCreditMap = new HashMap<String, Object>();

    /**
     * 金额区域信息，payable：应付款,unpaid：未付款,overdue：已逾期,paid：已放款
     */
    private Map<String, Object> securedLoanMap = new HashMap<String, Object>();
    /**
     * 应付票据笔数
     */
    private int billsPayableCount;
    /**
     * 应付票据总额
     */
    private BigDecimal billsPayableMoney;
    /**
     * 未审核应付票据笔数
     */
    private int notAuditedBillsCount;
    /**
     * 应付账款笔数
     */
    private int accountsPayableCount;
    /**
     * 应付账款总额
     */
    private BigDecimal accountsPayableMoney;
    /**
     * 未审核应付账款笔数
     */
    private int notAuditedPayableCount;
    /**
     * 采购订单笔数
     */
    private int purchaseOrderCount;
    /**
     * 采购订单总额
     */
    private BigDecimal purchaseOrderMoney;
    /**
     * 未审核采购订单笔数
     */
    private int notAuditedOrderCount;
    /**
     * 核心企业名称
     */
    private String coreName;

    public Map<String, Object> getScfCreditMap() {
        return scfCreditMap;
    }

    public void setScfCreditMap(Map<String, Object> anScfCreditMap) {
        scfCreditMap = anScfCreditMap;
    }

    public Map<String, Object> getSecuredLoanMap() {
        return securedLoanMap;
    }

    public void setSecuredLoanMap(Map<String, Object> anSecuredLoanMap) {
        securedLoanMap = anSecuredLoanMap;
    }

    public int getBillsPayableCount() {
        return billsPayableCount;
    }

    public void setBillsPayableCount(int anBillsPayableCount) {
        billsPayableCount = anBillsPayableCount;
    }

    public BigDecimal getBillsPayableMoney() {
        return billsPayableMoney;
    }

    public void setBillsPayableMoney(BigDecimal anBillsPayableMoney) {
        billsPayableMoney = anBillsPayableMoney;
    }

    public int getNotAuditedBillsCount() {
        return notAuditedBillsCount;
    }

    public void setNotAuditedBillsCount(int anNotAuditedBillsCount) {
        notAuditedBillsCount = anNotAuditedBillsCount;
    }

    public int getAccountsPayableCount() {
        return accountsPayableCount;
    }

    public void setAccountsPayableCount(int anAccountsPayableCount) {
        accountsPayableCount = anAccountsPayableCount;
    }

    public BigDecimal getAccountsPayableMoney() {
        return accountsPayableMoney;
    }

    public void setAccountsPayableMoney(BigDecimal anAccountsPayableMoney) {
        accountsPayableMoney = anAccountsPayableMoney;
    }

    public int getNotAuditedPayableCount() {
        return notAuditedPayableCount;
    }

    public void setNotAuditedPayableCount(int anNotAuditedPayableCount) {
        notAuditedPayableCount = anNotAuditedPayableCount;
    }

    public int getPurchaseOrderCount() {
        return purchaseOrderCount;
    }

    public void setPurchaseOrderCount(int anPurchaseOrderCount) {
        purchaseOrderCount = anPurchaseOrderCount;
    }

    public BigDecimal getPurchaseOrderMoney() {
        return purchaseOrderMoney;
    }

    public void setPurchaseOrderMoney(BigDecimal anPurchaseOrderMoney) {
        purchaseOrderMoney = anPurchaseOrderMoney;
    }

    public int getNotAuditedOrderCount() {
        return notAuditedOrderCount;
    }

    public void setNotAuditedOrderCount(int anNotAuditedOrderCount) {
        notAuditedOrderCount = anNotAuditedOrderCount;
    }

    public String getCoreName() {
        return coreName;
    }

    public void setCoreName(String anCoreName) {
        coreName = anCoreName;
    }

    @Override
    public String toString() {
        return "ScfAssetCoreInformation [scfCreditMap=" + scfCreditMap + ", securedLoanMap=" + securedLoanMap
                + ", billsPayableCount=" + billsPayableCount + ", billsPayableMoney=" + billsPayableMoney
                + ", notAuditedBillsCount=" + notAuditedBillsCount + ", accountsPayableCount=" + accountsPayableCount
                + ", accountsPayableMoney=" + accountsPayableMoney + ", notAuditedPayableCount="
                + notAuditedPayableCount + ", purchaseOrderCount=" + purchaseOrderCount + ", purchaseOrderMoney="
                + purchaseOrderMoney + ", notAuditedOrderCount=" + notAuditedOrderCount + ", coreName=" + coreName
                + "]";
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + accountsPayableCount;
        result = prime * result + (accountsPayableMoney == null ? 0 : accountsPayableMoney.hashCode());
        result = prime * result + billsPayableCount;
        result = prime * result + (billsPayableMoney == null ? 0 : billsPayableMoney.hashCode());
        result = prime * result + (coreName == null ? 0 : coreName.hashCode());
        result = prime * result + notAuditedBillsCount;
        result = prime * result + notAuditedOrderCount;
        result = prime * result + notAuditedPayableCount;
        result = prime * result + purchaseOrderCount;
        result = prime * result + (purchaseOrderMoney == null ? 0 : purchaseOrderMoney.hashCode());
        result = prime * result + (scfCreditMap == null ? 0 : scfCreditMap.hashCode());
        result = prime * result + (securedLoanMap == null ? 0 : securedLoanMap.hashCode());
        return result;
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (obj == null) {
            return false;
        }
        if (!(obj instanceof ScfAssetCoreInformation)) {
            return false;
        }
        ScfAssetCoreInformation other = (ScfAssetCoreInformation) obj;
        if (accountsPayableCount != other.accountsPayableCount) {
            return false;
        }
        if (accountsPayableMoney == null) {
            if (other.accountsPayableMoney != null) {
                return false;
            }
        } else if (!accountsPayableMoney.equals(other.accountsPayableMoney)) {
            return false;
        }
        if (billsPayableCount != other.billsPayableCount) {
            return false;
        }
        if (billsPayableMoney == null) {
            if (other.billsPayableMoney != null) {
                return false;
            }
        } else if (!billsPayableMoney.equals(other.billsPayableMoney)) {
            return false;
        }
        if (coreName == null) {
            if (other.coreName != null) {
                return false;
            }
        } else if (!coreName.equals(other.coreName)) {
            return false;
        }
        if (notAuditedBillsCount != other.notAuditedBillsCount) {
            return false;
        }
        if (notAuditedOrderCount != other.notAuditedOrderCount) {
            return false;
        }
        if (notAuditedPayableCount != other.notAuditedPayableCount) {
            return false;
        }
        if (purchaseOrderCount != other.purchaseOrderCount) {
            return false;
        }
        if (purchaseOrderMoney == null) {
            if (other.purchaseOrderMoney != null) {
                return false;
            }
        } else if (!purchaseOrderMoney.equals(other.purchaseOrderMoney)) {
            return false;
        }
        if (scfCreditMap == null) {
            if (other.scfCreditMap != null) {
                return false;
            }
        } else if (!scfCreditMap.equals(other.scfCreditMap)) {
            return false;
        }
        if (securedLoanMap == null) {
            if (other.securedLoanMap != null) {
                return false;
            }
        } else if (!securedLoanMap.equals(other.securedLoanMap)) {
            return false;
        }
        return true;
    }

}
